package com.mdc.mansion.dataaccess.modules.order.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.mdc.mansion.dataaccess.common.persistence.CrudDao;
import com.mdc.mansion.dataaccess.common.persistence.annotation.MyBatisDao;
import com.mdc.mansion.dataaccess.modules.order.entity.RestaurantOrderItem;
import com.mdc.mansion.dataaccess.modules.order.mo.RestaurantHisUnionMo;
import com.mdc.mansion.dataaccess.modules.order.mo.RestaurantOderItemUnionMo;
import com.mdc.mansion.dataaccess.modules.order.mo.RestaurantOrderItemMO;

/**
 * 餐厅订单明细信息dao接口
 * @author mingdongc
 * @version 2018-01-01
 */
@MyBatisDao
public interface RestaurantOrderItemDao extends CrudDao<RestaurantOrderItem>{

    List<RestaurantOrderItemMO> getNotCheckOutOrderItems(@Param("param") RestaurantOrderItemMO restaurantOrderItemMO);
    
    void updateByParam(RestaurantOrderItemMO restaurantOrderItemMO);

    List<RestaurantOrderItem> findCanCalculateList(RestaurantOrderItem restaurantOrderItem);

    List<RestaurantOrderItemMO> getNotWaiterSureOrderItems(@Param("param") RestaurantOrderItemMO restaurantOrderItemMO);

    int countNotFinalByDishesId(@Param("restaurantDishesId") String restaurantDishesId);

	List<RestaurantOrderItemMO> findKitchenDishesListByStatus(Map<String, String> paraMap);

	List<RestaurantOrderItem> mergeOrderInfo(RestaurantOrderItem restaurantOrderItem);

	List<RestaurantOrderItemMO> getMergeDishes(Map<String, Object> paraMap);

	List<String> getItemListForMerge(Map<String, Object> paraMap);

	List<RestaurantOderItemUnionMo> findKitchenDishesList(Map<String, String> paraMap);

	List<String> findKitchenItemList(RestaurantOrderItem item);

	/**
	 * @param paraMap
	 * @return
	 */
	List<RestaurantOderItemUnionMo> findCheckOutList(Map<String, Object> paraMap);

	/**
	 * @param parameterMap
	 * @return
	 */
	List<RestaurantHisUnionMo> getHisOrderInfo(Map<String, String> parameterMap);
	
	List<RestaurantOderItemUnionMo> useItemGetCombo(String orderItemId);
	
	void updateItemByDetail(RestaurantOrderItemMO restaurantOrderItemMO);
}
